/*
 *  Note.h
 *  SoundController0002
 *
 *  Created by jiro on 11/10/02.
 *  Copyright 2011 jiro music. All rights reserved.
 *
 */

#pragma once

#include "../../sc/SoundController.h"

namespace sc
{
namespace system0039
{

	class ConcreteNote;

	class AbstractNote
	{
	private:

		::sc::Note::MidiNumber generateMidiNumber;

		::sc::Note::MidiNumber midiNumber;

		double dynamics;

	public:

		AbstractNote( ::sc::Note::MidiNumber generateMidiNumber, ::sc::Note::MidiNumber midiNumber, double dynamics );

		::sc::Note::MidiNumber GetGenerateMidiNumber() const;

		::sc::Note::MidiNumber GetMidiNumber() const;

		double GetDynamics() const;

		void GetConcreteNotes( std::vector< ConcreteNote >& notes ) const;
		
		std::string ToString( int tabCount = 0 ) const;

	};

}
}
